package com.emeraldparser.symbol;

import com.emeraldparser.util.Automaton;

/**
 * The result of calling {@link #hashCode()} should remain constant.
 * 
 * @author Adam Paynter
 *
 */
public interface SymbolClass {

	public static interface State {

	}

	Automaton<? extends State, ? extends SymbolClass> toAutomaton();

	<I, O> O accept(SymbolClassVisitor<I, O> visitor, I input);

}
